import datetime
import logging
import os
import shutil
import sys


# 日志
def log(log_name):
    # 封装日志操作，在最后的时候调用
    logger = logging.getLogger(log_name)
    # 创建日志器
    sh = logging.StreamHandler(sys.stdout)
    # 格式器
    sh.setFormatter(logging.Formatter('%(asctime)s - %(filename)s - %(module)s - %(funcName)s - %(lineno)d - %(levelname)s - %(message)s'))
    # 将日志信息显示到控制台
    logger.addHandler(sh)
    BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

    # 文本log， 当前项目下创建log文件夹
    log_path = os.path.join(BASE_DIR, './log/data_log')

    # 判断文件名是否存在，存在就删除
    if os.path.isdir(log_path):
        shutil.rmtree(log_path)
    # if not os.path.exists(log_path):
    # 创建一个文件
    os.makedirs(log_path)
    log_path = os.path.join(log_path, '%s.log' % log_name)
    # if not os.path.exists(log_path):
    # 进入文件里面写入信息
    f = open(log_path, 'w')

    # 创建文本处理器
    fh = logging.FileHandler(log_path)
    # 格式器
    fh.setFormatter(logging.Formatter('%(asctime)s - %(filename)s - %(module)s - %(funcName)s - %(lineno)d - %(levelname)s - %(message)s'))
    logger.addHandler(fh)
    # logger等级
    logger.setLevel(20)
    # if os.path.exists(log_path):
    f.close()
    return logger


# 如果想要实时记录，就可以在此时间后面加入%H%M%S
run_time = 'runtime_' + str(datetime.datetime.now().strftime(" %Y%m%d"))

